Due to advances in computing technology, businesses today are able to operate more efficiently when compared to substantially similar businesses only a few years ago. For example, internal networking enables employees of a company to communicate instantaneously by email, quickly transfer data files to disparate employees, manipulate data files, share data relevant to a project to reduce duplications in work product, etc. Furthermore, advancements in technology have enabled factory applications to become partially or completely automated. For instance, operations that once required workers to put themselves proximate to heavy machinery and other various hazardous conditions can now be completed at a safe distance therefrom.
Further, imperfections associated with human action have been minimized through employment of highly precise machines. Many of these factory devices supply data related to manufacturing to databases that are accessible by system/process/project managers on a factory floor. For instance, sensors and associated software can detect a number of instances that a particular machine has completed an operation given a defined amount of time. Further, data from sensors can be delivered to a processing unit relating to system alarms. Thus, a factory automation system can review collected data and automatically and/or semi-automatically schedule maintenance of a device, replacement of a device, and other various procedures that relate to automating a process.
While various advancements have been made with respect to automating an industrial process, utilization and design of controllers has been largely unchanged. Industrial controllers are special-purpose computers utilized for controlling industrial processes, manufacturing equipment, and other factory automation processes, such as data collection through networked systems. Controllers often work in concert with other computer systems to form an environment whereby a majority of modem and automated manufacturing operations occur. These operations involve front-end processing of materials such as steel production to more intricate manufacturing processes such as automobile production that involves assembly of previously processed materials. Oftentimes, such as in the case of automobiles, complex assemblies can be manufactured with high technology robotics assisting the industrial control process.
Conventionally, industrial automation environments included a number of local devices that communicated with controller(s) via a local network connection. For example, valves associated with manufacturing equipment located on a factory floor could be wired directly to a local network, and automation could be effectuated with a controller that was located locally on that network. Software developed for use in such industrial automation environments accordingly did not take into account communication within a publicly accessible worldwide system of interconnected computer networks such as the internet.
Advancements in technology have enabled devices within an industrial automation environment to be located at remote locations. For example, a controller can be positioned in a factory while equipment that enables a light at the top of a cell phone tower to blink can be located hundreds of miles away. Communications with remote devices are typically effectuated via an internet connection. Further, these remote devices are often located behind firewalls. However, legacy software designed for use within conventional local networks oftentimes is incompatible for use over the internet. At the time many legacy applications were developed, the protocols employed failed to contemplate use over the internet. Accordingly, such legacy software needs to be modified to support web services and/or firewall friendly protocols to communicate with remote devices. However, altering legacy software is a time intensive task for developers of the software. Additionally, requiring modification of legacy applications to enable communications over the internet is costly for customers who currently utilize software that fails to support internet communications, since these customers will have to purchase and install updated software.